<?php 
/**
 * Outils de conversion CSV
 *
 * @package zfbook
 * @subpackage convert
 */
class Zfbook_Convert_Csv implements Zfbook_Convert_Interface
{
    /**
     * Retourne l'instance du singleton
     *
     * @return Zfbook_Convert_Csv
     */
    public static function getInstance()
    {
        static $instance = null;

        if ($instance === null) {
            $instance = new self();
        }
        return $instance;
    }

    /**
     * Construit un tableau au format CSV
     *
     * @param array $array
     * @return string
     */
    public function convertFromArray($array)
    {
        $retVal = '';
        if (!is_array($array)) {
            throw new Zfbook_Convert_Csv_Exception('Array required');
        }

        // Génération du fichier temporaire
        $fd = fopen('php://temp', 'r+');
        foreach ($array as $item) {
            fputcsv($fd, $item, ';', '"');
        }
        rewind($fd);

        // Récupérationd des données et expédition
        $csvContent = stream_get_contents($fd);
        fclose($fd);

        return $csvContent;
    }

    private function __clone()
    {
    }

    private function __construct()
    {
    }

}
